package com.smartleanx.module.hrm.framework.operate.core.annotations;

import com.smartleanx.module.hrm.framework.operate.core.aop.OperationLogAspect;
import com.smartleanx.module.hrm.framework.operate.core.enums.DocTypeEnum;
import com.smartleanx.module.hrm.framework.operate.core.enums.OperationTypeEnum;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.METHOD;

/**
 * 操作日志 AOP 注解
 *
 * @author tengcj
 * @date 2024/1/22 15:37
 * @see OperationLogAspect
 */
@Target({METHOD, ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface OperationLog {

    /**
     * 操作类型
     */
    OperationTypeEnum operateType();

    /**
     * 单据类型
     */
    DocTypeEnum docType();

}
